#include <stdio.h>
#include <stdlib.h>
//多级指针
//关键点：指针存放地址，但自己也有内存地址
int main() {
    int num = 100;
    //一级指针 *
    //真实开发过程中最多出现三级指针
    int *num_p = &num; //取出num的地址给num_p
    int **num_p_p = &num_p;
    printf("num的内存地址是%p\n", num_p);
    printf("num_p的内存地址是%p\n", num_p_p);
    //num  的内存地址是0x16d506d08
    //num_p的内存地址是0x16d506d00
    printf("num的值是%d\n", **num_p_p);
    int * arr = malloc(sizeof(int) * 10);
    printf("arr自己的地址是%p,对应堆内存的地址是%p\n", &arr, arr);
    return 0;
}
